package com.example.service.ifac;

import com.example.pojo.dto.PageDTO;
import com.example.pojo.dto.ProductInventoryDTO;
import com.example.pojo.dto.SaveProductAllotApplyDTO;
import com.example.pojo.dto.UpdateProductAllotApplyDTO;
import com.example.pojo.orm.ProductInventory;
import com.example.pojo.vo.PageVO;
import com.example.util.JsonResult;

import java.util.List;

/**
 * @author 季鑫利
 * @description 商品库存接口
 */
public interface ProductInventoryService {

    /**
     * 新增商品库存信息
     *
     * @param saveProductAllotApplyDTO 新增商品库存信息
     * @return 操作结果
     * @author 季鑫利
     */
    JsonResult saveProductInventory(SaveProductAllotApplyDTO saveProductAllotApplyDTO);

    /**
     * 更新商品库存信息
     * @param updateProductAllotApplyDTO 更新库存信息
     * @return true 成功,false 失败
     * @author 季鑫利
     */
    JsonResult updateProductInventory(UpdateProductAllotApplyDTO updateProductAllotApplyDTO);

    /**
     * 删除商品库存信息
     *
     * @param id 商品库存id
     * @return 操作结果
     * @author 季鑫利
     */
    JsonResult removeProductInventory(Integer id);

    /**
     * 查询所有商品库存
     *
     * @param pageDTO 分页参数
     * @return 所有商品库存
     * @author 季鑫利
     */
    JsonResult<PageVO<ProductInventory>> queryProductInventory(PageDTO pageDTO);

    /**
     * 根据商品id查询库存
     *
     * @param id 商品id
     * @return 商品库存信息
     * @author 季鑫利
     */
    JsonResult<ProductInventory> queryProductInventoryById(Long id);
}
